"""
删除链表的重复项
挑战介绍
实现一个算法来删除链表中数据元素重复的结点。要求如下：

对于链表中有相同数据元素的结点，删除后面的重复结点。
挑战内容
本次挑战中，你需要在 removedupes.py 文件中补充函数 remove_dupes 的空缺部分。

MyLinkedList 类继承“实现链表类”挑战中的 LinkedList 类。
MyLinkedList 类的 remove_dupes 方法用于删除链表的重复项，它没有输入，也没有返回值。
如果链表没有结点，则不进行操作。
"""
from linked_list import LinkedList


class MyLinkedList(LinkedList):

    def remove_dupes(self):
        if self.head is None:
            return
        node = self.head
        seen_data = set()
        while node is not None:
            if node.data not in seen_data:
                seen_data.add(node.data)
                prev = node
                node = node.next
            else:
                prev.next = node.next
                node = node.next
